package com.ekgc.addressbook.controller;

import com.ekgc.addressbook.base.config.Result;
import com.ekgc.addressbook.base.pojo.vo.TOKEN;
import com.ekgc.addressbook.common.UserGroup;
import com.ekgc.addressbook.service.impl.GroupService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
@Slf4j
@RestController
@RequestMapping("/group")
public class GroupController {

    @Autowired
    private GroupService groupService;

    // 修改点 1：修改方法签名，通过 @RequestParam 接收手机号
    @GetMapping("/get")
    public Result getData(@RequestParam("phoneNumber") String phoneNumber) {
//        log.info("查询联系人组信息，手机号码：{}", phoneNumber);
//        List<UserGroup> data = groupService.getDataFromDatabase(phoneNumber);
//        return Result.ok(data, (long) data.size());
        log.info("查询联系人组信息，手机号码：{}", phoneNumber);
        List<UserGroup> dataList = groupService.getDataFromDatabase(phoneNumber);
        UserGroup[] dataArray = dataList.toArray(new UserGroup[0]);
        return Result.ok(dataArray, (long) dataArray.length);
    }
    /**
     * 根据手机号码和 userid 删除联系人组及其关联关系的接口
     * @param phoneNumber 手机号码
     * @param userId 用户 ID
     * @return 删除结果信息
     */
    @DeleteMapping("delete")
    public Result deleteGroup(@RequestParam("groupId") int groupId) {
        try {
            groupService.deleteGroup(groupId);
            return Result.ok();
        } catch (Exception e) {
            return Result.fail("删除分组失败: " + e.getMessage());
        }
    }


    @PostMapping("/add")
    public Result addUserGroup(@RequestBody UserGroup userGroup) {
        int result = groupService.addUserGroup(userGroup);
        if (result > 0) {
            return Result.ok("添加用户组成功");
        } else {
            return Result.fail("添加用户组失败");
        }
    }

    /**
     * 删除分组（接收分组 ID）
//     * @param params 包含 groupId 的请求体（如：{ "groupId": 1 }）
     * @return Result 封装的响应
     */
    @PostMapping("/delete")
    public Result deleteUserGroup(@RequestBody Integer groupId) {
        int result = groupService.deleteUserGroup(groupId);
        if (result > 0) {
            return Result.ok("删除分组成功"); // 使用你提供的 Result 类
        } else {
            return Result.fail("删除分组失败，分组可能不存在");
        }
    }
}